﻿//#define _CRT_SECURE_NO_WARNINGS  1
////一定要动手，例子不管多么简单，建议至少自己手敲一遍看看是否理解了里头的细枝末节。
////一定要学会思考，思考为什么要这样，而不是那样。还要举一反三地思考
//#include<string>
//#include<iostream>
//using namespace std;
//class person {
//public:
//	int _age;
//	static int _id;//  静态成员变量   不属于类的对象上c 必须在类内声明和类外初始化
//	void func()//非静态成员函数      不属于类的对象上
//	{}
//	static void func2()//静态成员函数
//	{
//	}
//	string _name;
//public:
//	person()
//	{
//		cout << "person 默认构造函数" << endl;
//	}
//	person(int _age)
//	{
//		//this指向被调用的成员函数所属的对象
//		this->_age = _age;
//		cout << "person 有参构造函数" << endl;
//	}
//	person(const person& p)
//	{
//		_age = p._age;
//		_name = p._name;
//		cout << "person 拷贝构造函数" << endl;
//	}
//	~person()
//	{
//		//当使用堆上空间，释放是在此处释放
//		cout << "person  析构函数调用" << endl;
//	}
//	person& personAddage(person& p)
//	{
//		this->_age += p._age;
//		return *this;
//	}
//};
//int person::_id = 10;
//
////void test1()
////{
////	person p;
////	cout << "size of p = " << sizeof(p) << endl;  //1字节  C++编译器会给每个空对象也分配一个字节的空间，
////	//目的是为了区分对象占内存的位置
////}
////解决名称冲突
//void test4()
//{
//	person p1(10);
//	person p2(20);
//	p2.personAddage(p1).personAddage(p1).personAddage(p1);
//	cout << "p1的年龄：" << p1._age << endl;
//	cout << "p2的年龄：" << p2._age << endl;
//
//}
//
//int main()
//{
//	test4();
//	system("pause");
//	return 0;
//}